LTE IoT Click
LTE IoT Click demo application is developed using the NECTO Studio, ensuring compatibility with mikroSDK's open-source libraries and tools. Designed for plug-and-play implementation and testing, the demo is fully compatible with all development, starter, and mikromedia boards featuring a mikroBUS™ socket.
Click Library
- Author : MikroE Team
- Date : Apr 2020.
- Type : UART GSM/IOT type
Software Support
Example Description
This example reads and processes data from LTE IoT Click.
Example Libraries
- MikroSDK.Board
- MikroSDK.Log
- Click.LteIot
Example Key Functions
- lteiot_cfg_setup LTE IoT configuration object setup function.
void lteiot_cfg_setup(lteiot_cfg_t *cfg)
LTE IoT configuration object setup function.
Click configuration structure definition.
Definition lteiot.h:156
- lteiot_init LTE IoT initialization function.
err_t lteiot_init(lteiot_t *ctx, lteiot_cfg_t *cfg)
LTE IoT initialization function.
Click ctx object definition.
Definition lteiot.h:131
- lteiot_power_on LTE IoT module power on.
void lteiot_power_on(lteiot_t *ctx)
LTE IoT module power on.
- lteiot_send_cmd Send command function.
void lteiot_send_cmd(lteiot_t *ctx, char *cmd)
Send command function.
Application Init
Initializes driver and wake-up module and sets default configuration for connecting device to network.
{
log_cfg_t log_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
Delay_ms ( 1000 );
if ( init_flag == UART_ERROR )
{
log_error( &logger, " Application Init Error. " );
log_info( &logger, " Please, run program again... " );
for ( ; ; );
}
log_info( &logger, " Power on device... " );
lteiot_process( );
lteiot_clear_app_buf( );
app_error_flag = lteiot_rsp_check( );
lteiot_error_check( app_error_flag );
Delay_ms ( 500 );
app_error_flag = lteiot_rsp_check( );
lteiot_error_check( app_error_flag );
Delay_ms ( 500 );
app_error_flag = lteiot_rsp_check( );
lteiot_error_check( app_error_flag );
Delay_ms ( 500 );
app_error_flag = lteiot_rsp_check( );
lteiot_error_check( app_error_flag );
Delay_ms ( 500 );
app_error_flag = lteiot_rsp_check( );
lteiot_error_check( app_error_flag );
Delay_ms ( 500 );
app_error_flag = lteiot_rsp_check( );
lteiot_error_check( app_error_flag );
Delay_ms ( 500 );
app_error_flag = lteiot_rsp_check( );
lteiot_error_check( app_error_flag );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
app_error_flag = lteiot_rsp_check( );
lteiot_error_check( app_error_flag );
Delay_ms ( 500 );
app_error_flag = lteiot_rsp_check( );
lteiot_error_check( app_error_flag );
Delay_ms ( 500 );
app_buf_len = 0;
app_buf_cnt = 0;
log_info( &logger, " Application Task " );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
}
#define LTEIOT_CMD_CIMI
Definition lteiot.h:106
#define LTEIOT_CMD_COPS
Definition lteiot.h:110
#define LTEIOT_CMD_CFUN
Definition lteiot.h:102
#define LTEIOT_CMD_CEREG
Definition lteiot.h:104
#define LTEIOT_CMD_CGMR
Definition lteiot.h:100
#define LTEIOT_CMD_ATI
Definition lteiot.h:99
#define LTEIOT_CMD_AT
Definition lteiot.h:98
#define LTEIOT_MAP_MIKROBUS(cfg, mikrobus)
Definition lteiot.h:66
void lteiot_set_sim_apn(lteiot_t *ctx, char *sim_apn)
Set sim card APN.
void lteiot_send_cmd_with_parameter(lteiot_t *ctx, char *at_cmd_buf, char *param_buf)
Send command function with parameter.
void application_init(void)
Definition main.c:124
#define SIM_APN
Definition main.c:49
#define WAIT_FOR_CONNECTION
Definition main.c:55
Application Task
Waits for device to connect to network and then sends SMS to selected phone number.
{
{
app_error_flag = lteiot_rsp_check( );
lteiot_error_check( app_error_flag );
Delay_ms ( 500 );
app_error_flag = lteiot_rsp_check( );
lteiot_error_check( app_error_flag );
Delay_ms ( 500 );
app_error_flag = lteiot_rsp_check( );
lteiot_error_check( app_error_flag );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
}
else
{
log_info( &logger, "CONNECTED TO NETWORK" );
app_error_flag = lteiot_rsp_check( );
lteiot_error_check( app_error_flag );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
for( ; ; )
{
log_printf( &logger, "> Sending message to phone number...\r\n" );
app_error_flag = lteiot_rsp_check( );
lteiot_error_check( app_error_flag );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
}
}
}
#define LTEIOT_CMD_CGATT
Definition lteiot.h:107
#define LTEIOT_CMD_CSQ
Definition lteiot.h:108
void lteiot_send_text_message(lteiot_t *ctx, char *phone_number, char *message_context)
LTE IoT send text message.
void lteiot_send_cmd_check(lteiot_t *ctx, char *at_cmd_buf)
Check the sent command.
void application_task(void)
Definition main.c:228
#define PHONE_NUMBER_TO_MESSAGE
Definition main.c:50
#define MESSAGE_CONTENT
Definition main.c:51
Note
In order for the example to work, user needs to set the phone number and sim apn to which he wants to send an SMS Enter valid data for the following macros: SIM_APN and PHONE_NUMBER_TO_MESSAGE.
E.g.
- SIM_APN "vipmobile"
- PHONE_NUMBER_TO_MESSAGE "999999999"
Application Output
This Click board can be interfaced and monitored in two ways:
- Application Output - Use the "Application Output" window in Debug mode for real-time data monitoring. Set it up properly by following this tutorial.
- UART Terminal - Monitor data via the UART Terminal using a USB to UART converter. For detailed instructions, check out this tutorial.
Additional Notes and Information
The complete application code and a ready-to-use project are available through the NECTO Studio Package Manager for direct installation in the NECTO Studio. The application code can also be found on the MIKROE GitHub account.